﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Restaurant.DTO;
using Restaurant.DAO;

namespace Restaurant.BUS
{
    public class NhaHangService
    {
        private NhaHangDB nhDAO = new NhaHangDB();

        public DataTable LoadNH()
        {
            return nhDAO.LoadNH();
        }

        //=========== Dirty Read (Load) ==================//
        public DataTable LoadNHDrityreadError()
        {
            return nhDAO.LoadNHDrityreadError();
        }

        public DataTable LoadNHDrityread()
        {
            return nhDAO.LoadNHDrityread();
        }
        //================================================//

        //========= Unrepeatable Read ====================//
        public DataTable LoadNHUnrepeatError(ref int soluong)
        {
            return nhDAO.LoadNHUnrepeatError(ref soluong);
        }

        public DataTable LoadNHUnrepeat(ref int soluong)
        {
            return nhDAO.LoadNHUnrepeat(ref soluong);
        }
        //================================================//

        //========= Phantom Read ====================//
        public DataTable LoadNHPhantomError(ref int soluong)
        {
            return nhDAO.LoadNHPhantomError(ref soluong);
        }

        public DataTable LoadNHPhantom(ref int soluong)
        {
            return nhDAO.LoadNHPhantom(ref soluong);
        }
        //================================================//

        //============== Dirty Read (Cap Nhat) ================//
        public bool CapNhatNHDirtyreadError(NhaHang nv)
        {
            if (nhDAO.CapNhatNHDirtyreadError(nv.MaNH, nv.TenNH, nv.Diachi, nv.Sodt))
                return true;
            return false;
        }

        public bool CapNhatNHDirtyread(NhaHang nv)
        {
            if (nhDAO.CapNhatNHDirtyread(nv.MaNH, nv.TenNH, nv.Diachi, nv.Sodt))
                return true;
            return false;
        }
        //=====================================================//

        //============== Unrepeat (Cap Nhat) ================//
        public bool CapNhatNHUnrepeatError(NhaHang nv)
        {
            if (nhDAO.CapNhatNHUnrepeatError(nv.MaNH, nv.TenNH, nv.Diachi, nv.Sodt))
                return true;
            return false;
        }

        public bool CapNhatNHUnrepeat(NhaHang nv)
        {
            if (nhDAO.CapNhatNHUnrepeat(nv.MaNH, nv.TenNH, nv.Diachi, nv.Sodt))
                return true;
            return false;
        }
        //=====================================================//

        public bool ThemNhaHang(NhaHang nh)
        {
            if (nh.TenNH == "" || nh.Diachi == "" || nh.Sodt == "")
            {
                return false;
            }
            if (nhDAO.ThemNH(nh.TenNH, nh.Diachi, nh.Sodt))
                return true;
            return false;
        }

        public NhaHang TimNhaHang(int ma)
        {
            NhaHang nv = new NhaHang();
            DataTable dbtab = nhDAO.TimNH(ma);
            DataRow dbrow = dbtab.Rows[0];
            nv.MaNH = int.Parse(dbrow[0].ToString());
            nv.TenNH = dbrow[1].ToString();
            nv.Diachi = dbrow[2].ToString();
            nv.Sodt = dbrow[3].ToString();
            return nv;
        }

        public bool CapNhatNH(NhaHang nv)
        {
            if (nhDAO.CapNhatNH(nv.MaNH, nv.TenNH, nv.Diachi, nv.Sodt))
                return true;
            return false;
        }

        public bool XoaNH(int ma)
        {
            if (nhDAO.XoaNH(ma))
                return true;
            return false;
        }

        public string LayTenNH(int ma)
        {
            DataTable dbtab = nhDAO.LayTenNH(ma);
            DataRow dbrow = dbtab.Rows[0];
            return dbrow["TenNH"].ToString();
        }

        public int LayMaNH(string ten)
        {
            DataTable dbtab = nhDAO.LayMaNH(ten);
            DataRow dbrow = dbtab.Rows[0];
            return int.Parse(dbrow["MaNH"].ToString());
        }

        public int LayMaNHTheoMaKhu(int maKhu)
        {
            DataTable dbtab = nhDAO.LayMaNHTheoMaKhu(maKhu);
            DataRow dbrow = dbtab.Rows[0];
            return int.Parse(dbrow["MaNH"].ToString());
        }
    }
}
